home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / wics.zip / SMPLDLG.CPP < prev    next >
C/C++ Source or Header  |  1993-03-03  |  5KB  |  183 lines

  1. #include <smpldlg.h>
  2.  
  3. TSampleDialog::TSampleDialog (PTWindowsObject AParent)
  4.     : TDialog (AParent, MAKEINTRESOURCE(SAMPLE_DIALOG))
  5. {
  6.     AHierarchialListBox = new THierarchialListBox (this, ID_HIERARCHY);
  7.     ARevenueDial = new TDial (this, ID_REVENUEDIAL);
  8.     AnExpenseDial = new TDial (this, ID_EXPENSEDIAL);
  9.     ARevenuePercent = new TNumericEdit (this, ID_REVENUEPERCENT);
  10.     AnExpensePercent = new TNumericEdit (this, ID_EXPENSEPERCENT);
  11.     ARevenueTotal = new TNumericEdit (this, ID_REVENUE);
  12.     AnExpenseTotal = new TNumericEdit (this, ID_EXPENSE);
  13.     APercentBar = new TPercentBar (this, ID_PERCENTBAR);
  14.  
  15.     hBackgroundBrush = CreateSolidBrush (GetSysColor(COLOR_WINDOW));
  16. }
  17.  
  18. TSampleDialog::~TSampleDialog ()
  19. {
  20.     DeleteObject (hBackgroundBrush);
  21. }
  22.  
  23. void TSampleDialog::SetupWindow()
  24. {
  25.     HANDLE    hSubTree;
  26.     HANDLE    hLowLevel;
  27.     int        index;
  28.     int        i;
  29.  
  30.     TDialog::SetupWindow();
  31.  
  32.     ARevenueDial->SetRange (10,1800);
  33.     AnExpenseDial->SetRange (1,500);
  34.  
  35.     ARevenueDial->SetPosition (500);
  36.     AnExpenseDial->SetPosition (400);
  37.  
  38.     ARevenuePercent->SetInt( 500 / 8 );
  39.     AnExpensePercent->SetInt ( 400 / 5 );
  40.  
  41.     ARevenueTotal->SetInt (500);
  42.     AnExpenseTotal->SetInt (400);
  43.  
  44.     APercentBar->SetLimit (500);
  45.     APercentBar->SetBytesProcessed (400);
  46.  
  47.     AHierarchialListBox->AddString("Eastern Division");
  48.     AHierarchialListBox->AddString("Central Division");
  49.     AHierarchialListBox->AddString("Western Division");
  50.  
  51.     hSubTree = AHierarchialListBox->GetChildHandle(NULL, 0);
  52.  
  53.     for ( index = 0 ; index < 3 ; index++ )
  54.     {
  55.         AHierarchialListBox->AddString ("Shipping & Receiving Department", hSubTree, index);
  56.         AHierarchialListBox->AddString ("Sales Department", hSubTree, index);
  57.         AHierarchialListBox->AddString ("Finance Department", hSubTree, index);
  58.         AHierarchialListBox->AddString ("Advertising Department", hSubTree, index);
  59.         AHierarchialListBox->AddString ("Production Department", hSubTree, index);
  60.         AHierarchialListBox->AddString ("Maintenance Department", hSubTree, index);
  61.         AHierarchialListBox->AddString ("Security Department", hSubTree, index);
  62.         AHierarchialListBox->AddString ("Legal Department", hSubTree, index);
  63.  
  64.         hLowLevel = AHierarchialListBox->GetChildHandle (hSubTree, index);
  65.  
  66.         for (i=0 ; i < 8 ; i ++ )
  67.         {
  68.             AHierarchialListBox->AddString ("Revenue", hLowLevel, i);
  69.             AHierarchialListBox->AddString ("General Expenses", hLowLevel, i);
  70.             AHierarchialListBox->AddString ("Deferred Income", hLowLevel, i);
  71.             AHierarchialListBox->AddString ("Taxes", hLowLevel, i);
  72.             AHierarchialListBox->AddString ("Other Income/Deductions", hLowLevel, i);
  73.         }
  74.     }
  75.  
  76.     hSubTree = NULL;
  77.     index    = -1;
  78.  
  79.     AHierarchialListBox->FindString ("Eastern Division", hSubTree, index, FALSE);
  80.     AHierarchialListBox->OpenSubTree (hSubTree, index);
  81.  
  82.     hSubTree = AHierarchialListBox->GetChildHandle (hSubTree, index);
  83.     index = -1;
  84.     AHierarchialListBox->FindString ("Finance Department", hSubTree, index, FALSE);
  85.     AHierarchialListBox->OpenSubTree (hSubTree, index);
  86.  
  87.     hSubTree = NULL;
  88.     index    = -1;
  89.  
  90.     AHierarchialListBox->FindString ("Western Division", hSubTree, index, FALSE);
  91.     AHierarchialListBox->OpenSubTree (hSubTree, index);
  92.  
  93.  
  94.  
  95. }
  96.  
  97. void TSampleDialog::WMVScroll (RTMessage msg)
  98. {
  99.     if ( HIWORD(msg.LParam) == GetDlgItem (HWindow, ID_REVENUEDIAL) )
  100.     {
  101.         int        iExpense;
  102.         int        iRevenue;
  103.  
  104.         iRevenue = ARevenueDial->GetPosition();
  105.         iExpense = AnExpenseDial->GetPosition();
  106.  
  107.         if ( iExpense > iRevenue )
  108.         {
  109.             AnExpenseDial->SetRange(1, iRevenue);
  110.             AnExpenseDial->SetPosition(iRevenue);
  111.             iExpense = iRevenue;
  112.         }             
  113.         else
  114.             AnExpenseDial->SetRange (1, iRevenue, TRUE);
  115.  
  116.         ARevenuePercent->SetInt( (int)(iRevenue * 100L / 1800));
  117.         AnExpensePercent->SetInt ((int)(iExpense * 100L / iRevenue));
  118.  
  119.         ARevenueTotal->SetInt(iRevenue);
  120.         AnExpenseTotal->SetInt(iExpense);
  121.  
  122.         APercentBar->SetBytesProcessed ((long)iExpense);
  123.         APercentBar->SetLimit((long)iRevenue);
  124.     }
  125.     else
  126.     {
  127.         AnExpensePercent->SetInt ((int)(AnExpenseDial->GetPosition() * 100L / ARevenueDial->GetPosition()));
  128.         AnExpenseTotal->SetInt(AnExpenseDial->GetPosition());
  129.  
  130.         APercentBar->SetBytesProcessed((long)AnExpenseDial->GetPosition());
  131.     }
  132. }
  133.  
  134. void TSampleDialog::WMCtlColor (RTMessage msg)    
  135. {
  136.     msg.Result = hBackgroundBrush;
  137. }
  138.  
  139. void TSampleDialog::cmdRevenue (RTMessage msg)
  140. {
  141.     int        iExpense;        
  142.     int        iRevenue;
  143.  
  144.     if ( HIWORD(msg.LParam) == NEN_CHANGE )
  145.     {
  146.         iRevenue = ARevenueTotal->GetInt();
  147.         iExpense = AnExpenseTotal->GetInt();
  148.  
  149.         if ( iExpense > iRevenue )
  150.         {
  151.             AnExpenseDial->SetRange(1, iRevenue);
  152.             AnExpenseDial->SetPosition(iRevenue);
  153.             iExpense = iRevenue;
  154.         }             
  155.         else
  156.             AnExpenseDial->SetRange (1, iRevenue, TRUE);
  157.  
  158.         ARevenuePercent->SetInt( (int)(iRevenue * 100L / 1800));
  159.         AnExpensePercent->SetInt ((int)(iExpense * 100L / iRevenue));
  160.  
  161.         ARevenueDial->SetPosition (iRevenue);
  162.  
  163.         APercentBar->SetBytesProcessed ((long)iExpense);
  164.         APercentBar->SetLimit((long)iRevenue);
  165.     }
  166. }
  167.  
  168. void TSampleDialog::cmdExpense (RTMessage msg)
  169. {
  170.     int        iRevenue;
  171.     int        iExpense;
  172.  
  173.     if ( HIWORD(msg.LParam) == NEN_CHANGE )
  174.     {
  175.         iRevenue = ARevenueTotal->GetInt();
  176.         iExpense = AnExpenseTotal->GetInt();
  177.  
  178.         AnExpensePercent->SetInt ((int)(iExpense * 100L / iRevenue));
  179.         AnExpenseDial->SetPosition(iExpense);
  180.         APercentBar->SetBytesProcessed((long)iExpense);
  181.     }
  182. }
  183.